package com.lcy.sys.model.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 系统统计数据响应
 *
 * @author zhang.rx
 * @since 2024/7/15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "系统统计数据响应")
public class SysStatisticsResponse {

    /**
     * 累计总用户数
     */
    @Schema(description = "累计总用户数")
    private Integer totalUsers;

    /**
     * 新增用户数
     */
    @Schema(description = "新增用户数")
    private Integer newUsers;

    /**
     * 活跃用户数
     */
    @Schema(description = "活跃用户数")
    private Integer activeUsers;

    /**
     * 日均活跃用户数
     */
    @Schema(description = "日均活跃用户数")
    private Integer dailyActiveUsers;

    /**
     * 总用户数趋势（近7天）
     */
    @Schema(description = "总用户数趋势（近7天）")
    private List<Integer> totalUserTrend;

    /**
     * 活跃用户数趋势（近7天）
     */
    @Schema(description = "活跃用户数趋势（近7天）")
    private List<Integer> activeUserTrend;

    /**
     * 活跃度趋势（近7天，百分比）
     */
    @Schema(description = "活跃度趋势（近7天，百分比）")
    private List<Integer> activityTrend;

    /**
     * 日期列表（近7天）
     */
    @Schema(description = "日期列表（近7天）")
    private List<String> dateRange;

    /**
     * 变化趋势（总用户数同比增长百分比）
     */
    @Schema(description = "总用户数增长百分比")
    private Double totalUsersTrend;

    /**
     * 变化趋势（新增用户数同比增长百分比）
     */
    @Schema(description = "新增用户数增长百分比")
    private Double newUsersTrend;

    /**
     * 变化趋势（活跃用户数同比增长百分比）
     */
    @Schema(description = "活跃用户数增长百分比")
    private Double activeUsersTrend;

    /**
     * 变化趋势（日均活跃用户数同比增长百分比）
     */
    @Schema(description = "日均活跃用户数增长百分比")
    private Double dailyActiveUsersTrend;
} 